/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.uniminuto.Videominuto.bean;

import co.edu.uniminuto.Videominuto.entities.Cliente;
import co.edu.uniminuto.Videominuto.ln.CatalogoCliente;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author JULIAN
 */
@ManagedBean
@SessionScoped
public class UsuarioBean {

    @EJB
    private CatalogoCliente catalogoCliente;
    private List<Cliente> clientes;
    private Cliente cliente;
    private String id;
    private String password;

    public UsuarioBean() {
    }

    public String guardarCliente() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        if (catalogoCliente.buscaCliente(cliente.getIdCliente()) != null) {
            facesContext.addMessage("registerForm", new FacesMessage("Error: el nick ya esta en uso"));
            return "UsuarioRegistro";
        } else if ("".equals(cliente.getReferido())) {
            catalogoCliente.ClienteCrear(cliente);
            return "ExitoRegistro";
        } else {
            if (catalogoCliente.buscaCliente(cliente.getReferido()) == null) {
                facesContext.addMessage("registerForm", new FacesMessage("Error:El referido digitado no existe"));
                return "UsuarioRegistro";
            } else {

                catalogoCliente.ClienteModificar(catalogoCliente.buscaCliente(cliente.getReferido()));
                catalogoCliente.ClienteCrear(cliente);
                return "ExitoRegistro";
            }
        }

    }

    public String prepararNuevoCliente() {
        cliente = new Cliente();
        return "UsuarioRegistro";
    }

    public void preparanuevoLogin() {
        cliente = new Cliente();
    }

    public List<Cliente> getClientes() {
        clientes = catalogoCliente.getTodosUsuario();
        return clientes;
    }

    public String validaUsuario() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        cliente = catalogoCliente.buscaCliente(id);


        if (cliente != null) {
            if (!cliente.getPassword().equals(password)) {
                facesContext.addMessage("loginForm", new FacesMessage("Contraseña incorrecta"));
                return "UsuarioLista";
            } else {
                return "Principal";
            }
        } else {
            facesContext.addMessage("loginForm", new FacesMessage("Nick incorrecto"));
            return "UsuarioLista";
        }
    }

    public Cliente getCliente() {
        return cliente;
    }
    
    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    public void reiniciaCliente(){
    cliente = new Cliente();
    cliente = catalogoCliente.buscaCliente(id);
    }
    public String logout(){ 
    FacesContext context = FacesContext.getCurrentInstance(); 
    ExternalContext ec = context.getExternalContext(); 
    final HttpServletRequest request = (HttpServletRequest)ec.getRequest(); 
    request.getSession( false ).invalidate(); 
    return "Logout"; 
    }
}
